Skip to content

Bugfix/#38 반복 일정 수정 오류 해결#39

Open
yeonjin719 wants to merge 17 commits intodevelopfrom
bugfix/#38-반복-일정-수정-오류-해결

Hidden character warning

The head ref may contain hidden characters: "bugfix/#38-\ubc18\ubcf5-\uc77c\uc815-\uc218\uc815-\uc624\ub958-\ud574\uacb0"
Open

Bugfix/#38 반복 일정 수정 오류 해결#39
yeonjin719 wants to merge 17 commits intodevelopfrom
bugfix/#38-반복-일정-수정-오류-해결

Conversation

@yeonjin719
Copy link
Collaborator

@yeonjin719 yeonjin719 commented Feb 24, 2026

🔗 관련 이슈


🧩 작업 요약 (TL;DR)

월간/주간 캘린더에서 잘린 이벤트 제목에 호버 툴팁을 추가하고, 할일/일정 유틸 함수에 한글 주석을 보강해 가독성과 유지
보수성을 개선했습니다.

  • 월간/주간 이벤트 제목 툴팁 표시 + 유틸 주석 보강

🔄 변경 유형

해당되는 항목에 체크해주세요.

  • ✨ Feature
  • 🐞 Bug Fix
  • 🔨 Refactor (기능 변화 없음)
  • 🎨 UI / UX
  • ⚙️ Setting / Infra
  • 🧪 Test
  • 📄 Docs

📌 주요 변경 사항

리뷰어가 집중해서 봐야 할 포인트

  • src/features/Calendar/components/CustomEvent/CustomMonthEvent.tsx
    • 제목 오버플로우 감지 후, 잘린 경우에만 툴팁 표시
    • 툴팁을 createPortaldocument.body에 렌더링해 셀 잘림 문제 해결
  • src/features/Calendar/components/CustomEvent/CustomWeekEvent.tsx
    • 주간뷰에도 동일한 툴팁 동작 적용
    • 기존 클릭/더블클릭/체크박스 동작 유지
  • src/features/Calendar/components/CustomEvent/CustomEvent.style.ts
    • 공통 툴팁 스타일(MonthEventTooltip) 추가
  • src/features/Calendar/utils/*, src/features/Todo/utils/*, src/shared/utils/*
    • 복잡한 유틸 함수에 한글 주석 추가 (동작 변경 없음)
  • 깜빡한 투두 모달에 중요도 체크 추가

🖼️ 스크린샷 / 영상 (선택)

UI 변경이 있다면 꼭 첨부해주세요.

Before After

🧠 리뷰 요청 포인트

리뷰어에게 특히 봐줬으면 하는 부분

  • 로직 설계
  • 상태 관리 방식
  • 네이밍
  • 성능 / 렌더링
  • 기타: 툴팁 표시 조건(실제 overflow일 때만 노출)과 한글 주석 범위/표현 일관성

⚠️ 체크리스트 (PR 올리기 전)

  • 로컬에서 정상 동작 확인
  • 기존 기능에 영향 없음
  • 불필요한 console.log 제거
  • 린트 / 타입 에러 없음
  • 관련 이슈 연결 완료

🚧 미완 / 후속 작업

이 PR에서 다루지 않은 내용이나 추후 작업

  • 툴팁 접근성(키보드 포커스/ARIA) 보강 검토
  • 그리고 지금 약간 이상하게 동작하는게 특정 투두에 대해서만 더블클릭하면 다른 ? 이벤트가 열리는데 이건 제 추측이지만 제가 이벤트 삭제 API 변경사항 반영한다고 테스트할 때 잘못 삭제한 이벤트에 대해서 이벤트 아이디가 꼬이는? 문제가 있는 것 같은데 추후 DB 밀고 비슷한 상황이 재현된다면 수정 반영하도록 하겠습니다..!

💬 기타 참고 사항

리뷰어가 알면 좋은 맥락, 트레이드오프, 고민 지점

  • 툴팁은 마우스 오버 + 제목 오버플로우 조건에서만 표시되도록 제한했습니다.
  • 포털 렌더링으로 캘린더 셀 영역 clipping 영향을 피했습니다.
  • 변경 후 eslint/build 기준으로 검증 완료했습니다.
  • 제가 27일까지 여행을 가서 깃허브 확인이 어려울 것 같습니다..! 검토해보시고 문제 없는 것 같다면 머지 시켜주세요!

@copilot 이 PR을 아래 기준으로 검토해주세요:

.github/instructions/capstone.instructions.md 파일을 지침으로 삼으세요.
폴더/파일 위치가 프로젝트 구조 규칙과 일치하는지
컴포넌트가 단일 책임 원칙(SRP)을 지키는지
import 방향이 올바른지 (shared → features 역방향 없음)
명명/케이스가 일관적인지 (PascalCase vs camelCase)
배럴(index.ts) 사용이 현 패턴을 따르는지
응답은 한국어로, 발견된 위반 항목과 추천 구조를 포함해주세요.
리뷰를 달아주세요

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

반복 일정/할 일 수정·드래그앤드롭 시 전송되는 recurrenceGroup/patch scope 처리를 보강하고, 캘린더 월/주간 이벤트 제목 overflow 시 툴팁을 노출하며, Todo/모달 폼 로직을 공통 훅으로 리팩터링한 PR입니다.

Changes:

  • 반복 일정/할 일의 patch 요청에서 occurrence/scope/recurrenceGroup 정규화 및 “이후 항목” 처리 로직 보강
  • 월간/주간 캘린더 이벤트 제목 overflow 감지 기반 포털 툴팁 추가 및 관련 스타일 보강
  • AddTodo/AddSchedule 폼의 제출/닫기 가드 로직 공통화 및 Todo feature 유틸·상태/액션 훅 분리

Reviewed changes

Copilot reviewed 34 out of 34 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/shared/utils/timeUtils.ts 시간 문자열↔분 변환 유틸에 주석 보강
src/shared/utils/repeatConfig.ts 반복 설정 동등성 비교 로직(직렬화 기반) 및 주석 보강
src/shared/utils/recurrencePattern.ts recurrenceGroup 정규화/요일·주차 계산 등 반복 패턴 유틸 신규 추가
src/shared/utils/recurrenceGroup.ts recurrenceGroup↔RepeatConfig 매핑 함수 주석 보강
src/shared/utils/priority.ts 우선순위 라벨/색상 변환 유틸 주석 보강
src/shared/utils/date.ts 날짜 포맷/라벨 유틸 주석 보강
src/shared/ui/modal/AddTodo/components/AddTodoForm.tsx 상세 hydrate/제출 흐름/unsaved guard 공통 훅 적용 및 반복 할 일 제출 플로우 반영
src/shared/ui/modal/AddSchedule/form/AddScheduleFormContent.tsx unsaved guard 공통 훅 적용 및 반복 이벤트 토글 패치 범위 보강
src/shared/schemas/schedule.ts 종료 시간 검증 로직에 안전 분기 추가
src/shared/hooks/query/useTodoMutations.ts Todo mutation 훅을 개별 훅 + 호환 래퍼로 리팩터링, invalidate 공통화
src/shared/hooks/form/useAddTodoForm.ts Todo patch 시 occurrenceDate/scope 옵션 지원 및 월간 패턴 보정 로직 추가
src/shared/hooks/common/useUnsavedCloseGuard.ts dirty 상태 닫기 가드 공통 훅 신규 추가
src/shared/hooks/addTodo/useTodoSubmitFlow.ts Todo 제출(반복 범위/반복 변경 확인) 플로우 공통 훅 신규 추가
src/shared/hooks/addSchedule/useScheduleSubmitFlow.ts Schedule 제출 플로우를 공통 submit 경로로 정리(에러 처리 일원화)
src/shared/hooks/addSchedule/useSchedulePatch.ts 반복 일정 patch 시 recurrenceGroup 정규화/범위 결정 및 월간 패턴 보정 추가
src/pages/main/TodoListPage/TodoListPage.tsx 주차 타이틀/진행률 날짜 파라미터 계산을 feature 유틸로 분리
src/features/Todo/utils/todoPage.ts Todo 페이지용 주차 타이틀/진행률 파라미터 유틸 신규 추가
src/features/Todo/utils/todoDate.ts Todo 날짜 라벨/마감 시간 계산 유틸 신규 추가(기존 로직 이동)
src/features/Todo/utils/colorPalette.ts Todo 색상 팔레트 유틸 주석 보강
src/features/Todo/hooks/useTodoSectionState.ts Todo 섹션 상태/모달 상태를 훅으로 분리(occurrenceDate 기반 editing key 포함)
src/features/Todo/hooks/useTodoCardActions.ts Todo 카드 액션(삭제/완료 토글) 훅으로 분리 및 낙관적 업데이트 정리
src/features/Todo/components/TodoSection/TodoSection.tsx 섹션 UI를 훅/유틸로 정리하고 필터 탭 컴포넌트 분리
src/features/Todo/components/TodoSection/TodoFilterTabs.tsx Todo 필터 탭 컴포넌트 신규 추가
src/features/Todo/components/TodoCard/TodoCard.tsx 카드 내부 mutation/상태 로직을 훅으로 분리
src/features/Calendar/utils/viewConfig.ts 캘린더 view 설정 관련 주석 보강
src/features/Calendar/utils/helpers/dayViewHelpers.ts day view 헬퍼 주석 보강 및 occurrence 키/날짜 처리 가독성 개선
src/features/Calendar/utils/helpers/calendarPageHelpers.ts 로컬 임시 이벤트 id 생성 주석 보강
src/features/Calendar/utils/formatters.ts 요일/헤더/날짜 포맷터 주석 보강
src/features/Calendar/utils/colorPalette.ts 일정 색상 키→테마 팔레트 매핑 주석 보강
src/features/Calendar/hooks/useCalendarDragDrop.ts 반복 이벤트 “이후 항목” 드롭 시 recurrenceGroup 재계산 빌더 추가
src/features/Calendar/components/CustomEvent/CustomWeekEvent.tsx 주간 이벤트 제목 overflow 시 포털 툴팁 노출 추가
src/features/Calendar/components/CustomEvent/CustomMonthEvent.tsx 월간 이벤트 제목 overflow 시 포털 툴팁 노출 추가
src/features/Calendar/components/CustomEvent/CustomEvent.style.ts 툴팁 스타일 및 제목/메타 스타일 조정
src/features/Calendar/components/CustomCalendar/CustomCalendar.tsx 반복 할 일 드롭 “이후 항목” 처리 시 상세 조회 기반 recurrenceGroup 보정 및 race 방지
Comments suppressed due to low confidence (1)

src/features/Calendar/components/CustomEvent/CustomEvent.style.ts:105

  • EventTitle에 width: 45px 고정값이 들어가면서 월/주간 뷰에서 제목이 실제로는 충분히 공간이 있어도 항상 과도하게 잘리고(툴팁 노출 빈도도 증가) 레이아웃이 화면/셀 너비에 반응하지 않게 됩니다. 제목 말줄임을 유지하려면 고정 width 대신 flex 아이템으로 동작하도록 설정(예: flex: 1 + min-width: 0 + max-width: 100% 등)해서 컨테이너의 실제 가용폭을 기준으로 overflow가 결정되게 조정해주세요.
export const EventTitle = styled.div`
  font-weight: 400;
  font-size: 12px;
  width: 45px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
`

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Backlog

Development

Successfully merging this pull request may close these issues.

🐞 [BugFix] 반복 일정 수정 오류 해결

3 participants